home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / optivc32 / vsimath.h < prev    next >
C/C++ Source or Header  |  1999-03-06  |  4KB  |  89 lines

  1. /*  VSImath.h
  2.  
  3.   vector management functions for data type "short":
  4.   integer arithmetics and mathematics.
  5.  
  6.   Copyright (c) 1996-1999 by Martin Sander
  7.   All Rights Reserved.
  8. */
  9.  
  10. #ifndef __VSIMATH_H
  11. #define __VSIMATH_H
  12.  
  13. #if !defined( __VECLIB_H )
  14.    #include <VecLib.h>
  15. #endif
  16.  
  17. #ifdef __cplusplus
  18.    extern "C" {
  19. #endif
  20.  
  21. /******************   Basic  Arithmetics   *************************/
  22.  
  23. void  __vf  VSI_neg( siVector Y, siVector X, ui size );
  24. void  __vf  VSI_abs( siVector Y, siVector X, ui size );
  25.  
  26. void  __vf  VSIo_addC(  siVector Y, siVector X, ui size, short C );
  27. void  __vf  VSIo_subC(  siVector Y, siVector X, ui size, short C );
  28. void  __vf  VSIo_subrC( siVector Y, siVector X, ui size, short C );
  29. void  __vf  VSIo_mulC(  siVector Y, siVector X, ui size, short C );
  30. #ifdef V_trapIntError
  31.     #define VSI_addC    VSIo_addC
  32.     #define VSI_subC    VSIo_subC
  33.     #define VSI_subrC   VSIo_subrC
  34.     #define VSI_mulC    VSIo_mulC
  35. #else
  36.     void  __vf  VSI_addC(  siVector Y, siVector X, ui size, short C );
  37.     void  __vf  VSI_subC(  siVector Y, siVector X, ui size, short C );
  38.     void  __vf  VSI_subrC( siVector Y, siVector X, ui size, short C );
  39.     void  __vf  VSI_mulC(  siVector Y, siVector X, ui size, short C );
  40. #endif
  41. void  __vf  VSI_divC(  siVector Y, siVector X, ui size, short C );
  42. void  __vf  VSI_divrC( siVector Y, siVector X, ui size, short C );
  43. void  __vf  VSI_modC(  siVector Y, siVector X, ui size, short C );
  44. void  __vf  VSI_maxC(  siVector Y, siVector X, ui size, short C );
  45. void  __vf  VSI_minC(  siVector Y, siVector X, ui size, short C );
  46.  
  47. void  __vf  VSIo_addV(  siVector Z, siVector X, siVector Y, ui size );
  48. void  __vf  VSIo_subV(  siVector Z, siVector X, siVector Y, ui size );
  49. void  __vf  VSIo_subrV( siVector Z, siVector X, siVector Y, ui size );
  50. void  __vf  VSIo_mulV(  siVector Z, siVector X, siVector Y, ui size );
  51. #ifdef V_trapIntError
  52.     #define VSI_addV     VSIo_addV
  53.     #define VSI_subV     VSIo_subV
  54.     #define VSI_subrV    VSIo_subrV
  55.     #define VSI_mulV     VSIo_mulV
  56. #else
  57.     void    __vf  VSI_addV(  siVector Z, siVector X, siVector Y, ui size );
  58.     void    __vf  VSI_subV(  siVector Z, siVector X, siVector Y, ui size );
  59.     void    __vf  VSI_subrV( siVector Z, siVector X, siVector Y, ui size );
  60.     void    __vf  VSI_mulV(  siVector Z, siVector X, siVector Y, ui size );
  61. #endif
  62. void    __vf  VSI_divV(  siVector Z, siVector X, siVector Y, ui size );
  63. void    __vf  VSI_divrV( siVector Z, siVector X, siVector Y, ui size );
  64. void    __vf  VSI_modV(  siVector Z, siVector X, siVector Y, ui size );
  65. void    __vf  VSI_maxV(  siVector Z, siVector X, siVector Y, ui size );
  66. void    __vf  VSI_minV(  siVector Z, siVector X, siVector Y, ui size );
  67.  
  68. /******************** Accumulation (Y += X) ******************************/
  69.  
  70. void __vf VSI_accV(   siVector Y, siVector  X, ui size );
  71. void __vf VSI_accVBI( siVector Y, biVector  X, ui size );
  72.  
  73.  
  74. /*****************   Bit-wise operations  *********************/
  75.  
  76. void    __vf  VSI_shl( siVector Y, siVector X, ui size, unsigned C );
  77. void    __vf  VSI_shr( siVector Y, siVector X, ui size, unsigned C );
  78.  
  79. void    __vf  VSI_and( siVector Y, siVector X, ui size, short C );
  80. void    __vf  VSI_or(  siVector Y, siVector X, ui size, short C );
  81. void    __vf  VSI_xor( siVector Y, siVector X, ui size, short C );
  82. void    __vf  VSI_not( siVector Y, siVector X, ui size );
  83.  
  84. #ifdef __cplusplus
  85. }
  86. #endif
  87.  
  88. #endif   /*  __VSIMATH_H    */
  89.